
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# hist()方法绘制直方图
def fun1():
    # 生成一组随机数据
    data = np.random.randn(1000)

    # 绘制直方图
    plt.hist(data, bins=30, color='skyblue', alpha=0.8)

    # 设置图表属性
    plt.title('Python hist Test')
    plt.xlabel('Value')
    plt.ylabel('Frequency')

    plt.show()

# 绘制多个数据组的直方图
def fun2():
    # 生成三组随机数据
    data1 = np.random.normal(0, 1, 1000)
    data2 = np.random.normal(2, 1, 1000)
    data3 = np.random.normal(-2, 1, 1000)

    # 绘制直方图
    plt.hist(data1, bins=30, alpha=0.5, label='Data 1')
    plt.hist(data2, bins=30, alpha=0.5, label='Data 2')
    plt.hist(data3, bins=30, alpha=0.5, label='Data 3')

    # 设置图表属性
    plt.title('Python hist Test')
    plt.xlabel('Value')
    plt.ylabel('Frequency')
    plt.legend()

    plt.show()

# 结合Pandas绘制直方图
def fun3():
    # 使用NumPy生成随机数
    random_data = np.random.normal(170, 10, 250)
    # 将数据转换为Pandas DataFrame
    dataframe = pd.DataFrame(random_data)
    # 使用Pandas hist()方法绘制直方图
    dataframe.hist()

    # 设置图标属性
    plt.title('Python hist Test')
    plt.xlabel('X-Value')
    plt.ylabel('Y-Value')

    plt.show()

# 使用Pandas的Series对象绘制直方图
def fun4():
    # 生成随机数据
    data = pd.Series(np.random.normal(size=100))
    # 绘制直方图
    plt.hist(data, bins=20)

    # 设置图形标题和坐标轴标签
    plt.title('Python hist Test')
    plt.xlabel('X-value')
    plt.ylabel('Y-value')

    plt.show()

if __name__ == '__main__':
    fun4()